package com.molihub.mapper;

import com.molihub.entity.Friend;
import com.molihub.entity.User;
import com.molihub.entity.UserFollow;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @ClassName: FriendMapper
 * @Description: 与好友表相关的数据操作
 * @author: GGBOY
 * @date 2020/2/15 18:06
 * @Version: 1.0
 **/
@Repository
@Mapper
public interface FriendMapper {
    /**
     * 向friend表中添加一行记录，处理好友请求的，建立好友关系
     * @author GGBOY
     * @date 2020/1/31
     */
    public void addRecord(Friend friend);

    /**
     * 根据用户双方的id来查找是否存在关系
     *
     * @param userId       用户id
     * @param friendId 用户id
     * @return com.molihub.entity.Friend
     * @author GGBOY
     * @date 2020/2/2
     */
    public Friend findRecordById(Integer userId, Integer friendId);

    /**
     * 根据用户ID查找对应的好友集合
     *
     * @param userId 用户id
     * @return java.util.List<com.molihub.entity.UserFollow>
     * @author GGBOY
     * @date 2020/2/3
     */
    public List<User> findAllFriendById(Integer userId);

    /**
     * 获得用户的好友数量
     *
     * @param userId 用户ID
     * @return java.lang.Integer
     * @author GGBOY
     * @date 2020/2/8
     */
    public Integer getFriendsCount(Integer userId);

    /**
     * 根据用户ID查找用户对应的所有记录
     *
     * @param userId 用户ID
     * @return java.util.List<com.molihub.entity.Friend>
     * @author GGBOY
     * @date 2020/2/8
     */
    public List<Friend> findAllRecordById(Integer userId);
}
